실습: 다익스트라 라우팅 계산기

목표 🎯

  • 과제:원본 서버 `S`에서 모든 다른 서버로 가는 최적의 경로를 찾으세요.
  • 출력 결과:모든 서버 `i`에 대해 다음을 계산해야 합니다:
    • 총 지연 시간:`S`에서 `i`까지의 최소 비용(최단 경로).
    • 다음 점검 지점:그 최단 경로상의 첫 번째 서버.
  • 예시:만약 `S`에서 `D`로 가는 최적 경로가 `S -> A -> B -> D`라면, **다음 점검 지점**은 `A`입니다.

네트워크 💾

우리는 인접 리스트를 사용하여 네트워크를 저장합니다.
  • 서버는 노드입니다.
  • 연결은 양방향 간선입니다.
  • 지연 시간은 양수 가중치입니다.
// 연결: 0-1 (10ms), 0-2 (3ms)
adj = [
0:[(1, 10), (2, 3)],
1:[(0, 10)],
2:[(0, 3)],
...
]

출력 형식 ⚙️

`V`줄을 출력해야 합니다. 각 줄 `i`는 서버 `i`에 해당합니다.

  • [지연시간] [다음 점검 지점]

    도달 가능한 노드에 대한 것입니다.

  • 0 -1

    노드가 원본 `S` 자체인 경우입니다.

  • -1 -1

    노드가 `S`에서 도달 불가능한 경우입니다.